VMs may be deployed on one or more hosts in a network environment to emulate the functionality of a hardware base machine. Typically, host software running on a software or hardware platform (e.g., a host machine) may be used to implement a VM. A host software generally referred to as a hypervisor or a VM monitor provides a platform-independent execution environment for one or more VMs.
A so called cloud network computing environment may be implemented based on a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, VMs, and services). The resources are generally provisioned and released by way of a resource manager that services periodical or requested updates for placement of VMs on one or more hosts in the cloud network environment.
In certain circumstances, a host software detects an imminent power failure, hardware failure, or other condition that may cause a host machine to become non-operational. In that case, the VMs on the failed host machine may need to be restarted, migrated or evacuated to another host machine. Placement changes for VMs may be also attributed to deploying new VMs, removing existing ones, or optimizing the placement to meet certain goals.